﻿using DevExpress.XtraEditors;
using System;
using System.Windows.Forms;

namespace B2BAktarim
{
    public partial class frmMain : XtraForm
    {
        private int StokAktarimSuresi = 0;
        private int KategoriAktarimSuresi = 0;
        private int DovizAktarimSuresi = 0;
        private int FiyatListesiAktarimSuresi = 0;
        private int CariAktarimSuresi = 0;
        private int SiparisAktarimSuresi = 0;

        public frmMain()
        {
            InitializeComponent();
        }

        private void frmMain_Load(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(Settings.Instance.GetValue(Information.StokAktarimSuresi)))
            {
                StokAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.StokAktarimSuresi));
            }
            else
            {
                StokAktarimSuresi = 60;
            }

            if (!string.IsNullOrEmpty(Settings.Instance.GetValue(Information.KategoriAktarimSuresi)))
            {
                KategoriAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.KategoriAktarimSuresi));
            }
            else
            {
                KategoriAktarimSuresi = 60;
            }

            if (!string.IsNullOrEmpty(Settings.Instance.GetValue(Information.DovizKurAktarimSuresi)))
            {
                DovizAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.DovizKurAktarimSuresi));
            }
            else
            {
                DovizAktarimSuresi = 60;
            }

            if (!string.IsNullOrEmpty(Settings.Instance.GetValue(Information.FiyatListesiAktarimSuresi)))
            {
                FiyatListesiAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.FiyatListesiAktarimSuresi));
            }
            else
            {
                FiyatListesiAktarimSuresi = 60;
            }

            if (!string.IsNullOrEmpty(Settings.Instance.GetValue(Information.CariAktarimSuresi)))
            {
                CariAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.CariAktarimSuresi));
            }
            else
            {
                CariAktarimSuresi = 60;
            }

            if (!string.IsNullOrEmpty(Settings.Instance.GetValue(Information.SiparisAktarimSuresi)))
            {
                SiparisAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.SiparisAktarimSuresi));
            }
            else
            {
                SiparisAktarimSuresi = 60;
            }

            txtStok.Text = StokAktarimSuresi.ToString();
            txtKategori.Text = KategoriAktarimSuresi.ToString();
            txtDoviz.Text = DovizAktarimSuresi.ToString();
            txtFiyatListe.Text = FiyatListesiAktarimSuresi.ToString();
            txtCari.Text = CariAktarimSuresi.ToString();
            txtSiparis.Text = SiparisAktarimSuresi.ToString();

            dteStok.DateTime = ToDate(Settings.Instance.GetValue(Information.SonStokAktarimZamani));
            dteKategori.DateTime = ToDate(Settings.Instance.GetValue(Information.SonKategoriAktarimZamani));
            dteDoviz.DateTime = ToDate(Settings.Instance.GetValue(Information.SonDovizKurAktarimZamani));
            dteFiyatListe.DateTime = ToDate(Settings.Instance.GetValue(Information.SonFiyatListesiAktarimZamani));
            dteCari.DateTime = ToDate(Settings.Instance.GetValue(Information.SonCariAktarimZamani));
            dteSiparis.DateTime = ToDate(Settings.Instance.GetValue(Information.SonSiparisAktarimZamani));
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            StokAktarimSuresi -= 1;
            KategoriAktarimSuresi -= 1;
            DovizAktarimSuresi -= 1;
            FiyatListesiAktarimSuresi -= 1;
            CariAktarimSuresi -= 1;
            SiparisAktarimSuresi -= 1;

            if (StokAktarimSuresi <= 0)
            {
                Aktarim.Get.StokAktar(ToDate(Settings.Instance.GetValue(Information.SonStokAktarimZamani)));
                StokAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.StokAktarimSuresi));
                dteStok.DateTime = ToDate(Settings.Instance.GetValue(Information.SonStokAktarimZamani));
            }

            if (KategoriAktarimSuresi <= 0)
            {
                Aktarim.Get.KategoriAktar(ToDate(Settings.Instance.GetValue(Information.SonKategoriAktarimZamani)));
                KategoriAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.KategoriAktarimSuresi));
                dteKategori.DateTime = ToDate(Settings.Instance.GetValue(Information.SonKategoriAktarimZamani));
            }

            if (DovizAktarimSuresi <= 0)
            {
                Aktarim.Get.DovizAktar();
                DovizAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.DovizKurAktarimSuresi));
                dteDoviz.DateTime = ToDate(Settings.Instance.GetValue(Information.SonDovizKurAktarimZamani));
            }

            if (FiyatListesiAktarimSuresi <= 0)
            {
                Aktarim.Get.FiyatListesiAktar(ToDate(Settings.Instance.GetValue(Information.SonFiyatListesiAktarimZamani)));
                FiyatListesiAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.FiyatListesiAktarimSuresi));
                dteFiyatListe.DateTime = ToDate(Settings.Instance.GetValue(Information.SonFiyatListesiAktarimZamani));
            }

            if (CariAktarimSuresi <= 0)
            {
                Aktarim.Get.CariAktar(ToDate(Settings.Instance.GetValue(Information.SonCariAktarimZamani)));
                CariAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.CariAktarimSuresi));
                dteCari.DateTime = ToDate(Settings.Instance.GetValue(Information.SonCariAktarimZamani));
            }

            if (SiparisAktarimSuresi <= 0)
            {
                Aktarim.Get.SiparisAktar();
                SiparisAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.SiparisAktarimSuresi));
                dteSiparis.DateTime = ToDate(Settings.Instance.GetValue(Information.SonSiparisAktarimZamani));
            }

        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {
            this.Hide();
        }

        private void frmMain_SizeChanged(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized)
            {
                this.Hide();
            }
        }

        private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            this.Show();
            this.WindowState = FormWindowState.Normal;
        }

        private string ToStr(DateTime value)
        {
            DateTime tarih = value;
            if (value.Year == 1)
            {
                tarih = new DateTime(1900, 1, 1);
            }
            return string.Format("{0}-{1}-{2} {3}:{4}:{5}", tarih.Year, tarih.Month, tarih.Day, tarih.Hour, tarih.Minute, tarih.Second);
        }

        private DateTime ToDate(string tarih)
        {
            if (!string.IsNullOrEmpty(tarih))
            {
                string[] dt = tarih.Split(' ')[0].Split('-');
                string[] hr = tarih.Split(' ')[1].Split(':');
                return new DateTime(Convert.ToInt32(dt[0]), Convert.ToInt32(dt[1]), Convert.ToInt32(dt[2]), Convert.ToInt32(hr[0]), Convert.ToInt32(hr[1]), Convert.ToInt32(hr[2]));
            }
            else
            {
                return new DateTime(1900, 1, 1);
            }
        }

        private void btnStok_Click(object sender, EventArgs e)
        {
            Settings.Instance.AddItems(Information.StokAktarimSuresi, txtStok.Text);
            Settings.Instance.AddItems(Information.SonStokAktarimZamani, ToStr(dteStok.DateTime));
            StokAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.StokAktarimSuresi));
        }

        private void btnCari_Click(object sender, EventArgs e)
        {
            Settings.Instance.AddItems(Information.CariAktarimSuresi, txtCari.Text);
            Settings.Instance.AddItems(Information.SonCariAktarimZamani, ToStr(dteCari.DateTime));
            CariAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.CariAktarimSuresi));
        }

        private void btnKategori_Click(object sender, EventArgs e)
        {
            Settings.Instance.AddItems(Information.KategoriAktarimSuresi, txtKategori.Text);
            Settings.Instance.AddItems(Information.SonKategoriAktarimZamani, ToStr(dteKategori.DateTime));
            KategoriAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.KategoriAktarimSuresi));
        }

        private void btnSiparis_Click(object sender, EventArgs e)
        {
            Settings.Instance.AddItems(Information.SiparisAktarimSuresi, txtSiparis.Text);
            Settings.Instance.AddItems(Information.SonSiparisAktarimZamani, ToStr(dteSiparis.DateTime));
            SiparisAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.SiparisAktarimSuresi));
        }

        private void btnDoviz_Click(object sender, EventArgs e)
        {
            Settings.Instance.AddItems(Information.DovizKurAktarimSuresi, txtDoviz.Text);
            Settings.Instance.AddItems(Information.SonDovizKurAktarimZamani, ToStr(dteDoviz.DateTime));
            DovizAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.DovizKurAktarimSuresi));
        }

        private void btnFiyatListe_Click(object sender, EventArgs e)
        {
            Settings.Instance.AddItems(Information.FiyatListesiAktarimSuresi, txtFiyatListe.Text);
            Settings.Instance.AddItems(Information.SonFiyatListesiAktarimZamani, ToStr(dteFiyatListe.DateTime));
            FiyatListesiAktarimSuresi = Convert.ToInt32(Settings.Instance.GetValue(Information.FiyatListesiAktarimSuresi));
        }

        private void frmMain_FormClosed(object sender, FormClosedEventArgs e)
        {
            Settings.Instance.Close();
        }
    }
}
